#include "usart1.h"

void USART1_Init()
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);

    // 初始化 PA9
    GPIO_InitTypeDef GPIO_InitStruct = {
        .GPIO_Pin = GPIO_Pin_9,
        .GPIO_Mode = GPIO_Mode_AF_PP,
        .GPIO_Speed = GPIO_Speed_50MHz,
    };
    GPIO_Init(GPIOA, &GPIO_InitStruct);

    // 初始化 USART1
    USART_InitTypeDef USART_InitStruct = {
        .USART_BaudRate = 4800,                                      // 波特率设置：4800
        .USART_WordLength = USART_WordLength_8b,                     // 数据位数设置：8位
        .USART_StopBits = USART_StopBits_1,                          // 停止位设置：1位
        .USART_Parity = USART_Parity_No,                             // 是否奇偶校验：无
        .USART_HardwareFlowControl = USART_HardwareFlowControl_None, // 硬件流控制模式设置：没有使能
        .USART_Mode = USART_Mode_Tx,                                 // 发送使能
    };
    USART_Init(USART1, &USART_InitStruct);

    // USART1 使能
    USART_Cmd(USART1, ENABLE);
}
